package com.pet.system.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.pet.system.domain.entity.SysRole;
import com.pet.system.domain.entity.SysRoleUser;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.ResultMap;
import org.apache.ibatis.annotations.Select;

import java.io.Serializable;
import java.util.List;

/** @author Centaurea */
public interface SysRoleUserMapper extends BaseMapper<SysRoleUser> {

  /**
   * 批量更新
   *
   * @param list 更新内容
   * @return 执行情况
   */
  int updateBatch(List<SysRoleUser> list);

  /**
   * 批量更新非null字段
   *
   * @param list 更新内容
   * @return 执行情况
   */
  int updateBatchSelective(List<SysRoleUser> list);

  /**
   * 批量插入
   *
   * @param list 插入内容
   * @return 执行情况
   */
  int batchInsert(@Param("list") List<SysRoleUser> list);

  /**
   * 更新或者添加一条数据
   *
   * @param record 数据内容
   * @return 执行情况
   */
  int insertOrUpdate(SysRoleUser record);

  /**
   * 更新或者添加一条数据的非null字段
   *
   * @param record 数据内容
   * @return 执行情况
   */
  int insertOrUpdateSelective(SysRoleUser record);

  @ResultMap("BaseResultMap")
  @Select(
      "SELECT * FROM sys_role WHERE id IN(SELECT role_id FROM sys_role_user WHERE user_id = #{userId})")
  public List<SysRole> getRoles(Serializable userId);
}
